#include<stdio.h>

int IsNumber(char matrixInfix[30][30],int index)
{
    if( matrixInfix[index][0]>47 && matrixInfix[index][0]<58 )
    {
        return 1;
    }
    else if ( ( matrixInfix[index][0] == '-' )&&( matrixInfix[index][1]>47 && matrixInfix[index][1]<58 ) )
    {
        return 1;
    }
    else return 0;
}

int GetTopPostfix(char matrixPostfix[30][30])
{
    int i= 0;
    while(matrixPostfix[i][0]!='\0')
    {
        i++;
    }
    return (i-1);
}

void AddNumberToMatrixPostfix(char matrixInfix[30][30], int* i, char matrixPostfix[30][30])
{
    int topPostrfix = GetTopPostfix(matrixPostfix);

    int j;
    for(j = 0; matrixInfix[*i][j] != '\0'; j++)
    {
        matrixPostfix[topPostrfix][j] = matrixInfix[*i][j];
    }
    (*i)++;
}

ConvertToPosfix(char matrixInfix[30][30], char matrixPostfix[30][30])
{
    int i=0,topStack;

    while(matrixInfix[i][0]!='\0')
    {
        if (IsNumber(matrixInfix, i))
        {
            AddNumberToMatrixPostfix(matrixInfix, &i, matrixPostfix);
        }
        ////////////////////////////////
    }
}

int main()
{
    char matrixInfix[30][30], matrixPostfix[30][30];

    int i,j;
    for(i=0; i<30; i++)
        for(j=0; j<30; j++)
        {
            matrixInfix[i][j] = '\0';
            matrixPostfix[i][j] = '\0';
        }
    // 5+7/((2*10+5)-6)
    matrixInfix[0][0] = '5';
    matrixInfix[1][0] = '+';
    matrixInfix[2][0] = '7';
    matrixInfix[3][0] = '/';
    matrixInfix[4][0] = '(';
    matrixInfix[5][0] = '(';
    matrixInfix[6][0] = '2';
    matrixInfix[7][0] = '*';
    matrixInfix[8][0] = '1';
    matrixInfix[8][1] = '0';
    matrixInfix[9][0] = '+';
    matrixInfix[10][0] = '5';
    matrixInfix[11][0] = ')';
    matrixInfix[12][0] = '-';
    matrixInfix[13][0] = '6';
    matrixInfix[14][0] = ')';

    ConvertToPosfix(matrixInfix, matrixPostfix);
    printf(" - DONE!!!");
}
